package br.com.democracia.managed;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import br.com.democracia.entity.Materia;
import br.com.democracia.services.MateriaService;
@Scope(value="request")
@Controller("cadastroMateria")
public class CrudMateria {
	
	@Autowired
	private MateriaService materiaService;
	
	private Materia materia;
	
	private List<Materia> lista;
	
	public CrudMateria() {
		materia = new Materia();
		lista = new ArrayList<Materia>();
		
	}

	public Materia getMateria() {
		return materia;
	}

	public void setMateria(Materia materia) {
		this.materia = materia;
	}
	
	public void cadastrar(){
		try {
			materiaService.add(materia);
			materia = new Materia();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public List<Materia> getLista() {
		try {
			lista  = materiaService.listar(materia);
			System.out.println(lista);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return lista;
	}
	public void setLista(List<Materia> lista) {
		this.lista = lista;
	}

	public String Excluir(){
		FacesContext fc = FacesContext.getCurrentInstance();
		try {
			materiaService.deletar(materia);
			materia = new Materia();
			fc.addMessage("form4", new FacesMessage("Editado com sucesso!"));
		} catch (Exception e) {
			fc.addMessage("form4", new FacesMessage("Erro: " + e.getMessage()));
		}
		return null; 
	}
	@RequestMapping(value="/Edit")
	public String Edit(){
		try {
			materiaService.editar(materia);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "redirect:materiaEditar";
	}
}
